package com.itheima.q20210221;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

//一:键盘录入一个年份,判断该年是否为闰年
//        用两种方式完成:
//        第一种可以根据二月共有多少天来判断
//        第二种可以根据一年总共有多少天来判断
public class DateWork {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s;
        int i;
        while (true) {
            System.out.println("请输入年份：");
            s = sc.nextLine();

            try {
                i = Integer.parseInt(s);
                if (i < 1000 || i > 9999) {
                    System.out.println("输入年份有误，请重新输入：");
                } else {
                    break;
                }
            } catch (NumberFormatException e) {
                System.out.println("数字格式不规范");
            //    e.printStackTrace();
            }

        }
       firMethod(s,i);

        twoMethod(s,i);

    }
    public static void firMethod(String s,int i){
        //  第一种可以根据二月共有多少天来判断
        //思路：找到3月1号， 向前推一天
        DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");//直接调用方法
        String  s1=s+"-03-01 00:00:00"; //得出输入年份的3月1号字符串
        LocalDateTime result = LocalDateTime.parse(s1, dtf);
        System.out.println(result);
        LocalDateTime localDateTime = result.plusDays(-1);
        int dayOfMonth = localDateTime.getDayOfMonth();
        System.out.println(dayOfMonth);
        if (dayOfMonth==28){
            System.out.println(s+"该年为平年");

        }  else{
            System.out.println(s+"该年为闰年");

        }


    }    public static void twoMethod(String s,int i){
        //第二种  第二种可以根据一年总共有多少天来判断
        DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String  s3=s+"-12-31 00:00:00";
        LocalDateTime result1 = LocalDateTime.parse(s3, dtf);
        System.out.println(result1);
        //LocalDateTime localDateTime=new LocalDateTime(year,12,31, 00,00,00);
        LocalDateTime localDateTime1 = result1.plusYears(-1);
        int year = localDateTime1.getYear();
        int num=i-year;
        if(year==365){
            System.out.println(s+"该年为平年");
        }else{
            System.out.println(s+"该年为平年");
        }

    }}
